Linux字符串截取和处理命令 (cut、printf、awk、sed、sort、wc) 您所在的位置:网站首页 shell 字符串截取 管道 Linux字符串截取和处理命令 (cut、printf、awk、sed、sort、wc)

Linux字符串截取和处理命令 (cut、printf、awk、sed、sort、wc)

2023-12-08 19:07| 来源: 网络整理| 查看: 265

文章目录 Linux字符串截取和处理命令 (cut、printf、awk、sed、sort、wc) 笔记 1.cut 命令 2. printf 命令 3. awk 命令 4. sed 命令 5. sort 命令 6. wc命令 7.Linux字符串截取命令 1.cut 命令 cut [选项] 文件名

-f  列号  #提取第几列(分隔符默认为\t) -d  分隔符  #指定分隔符 1 2 例如:cut -f 2 a.txt  #截取文件a.txt内容的第二列(列号从1开始)    cut -f 2,4 a.txt  #截取文件a.txt内容的第二列和第四列    cut -d “:” -f 1,3 /etc/passwd  #截取文件passwd文件的第1列和第三列,以:分割取其中的第一列和第三列

2. printf 命令 printf ‘输出类型 输出格式’ 输出内容 输出类型:

%ns  输出字符串,n是数字,指代输出几个字符 %ni  输出整数。n是数字,指代输出几个数字 %m.nf  位数和小数位数。例如:%8.2f 代表输出8位数,其中2位是小数,6位是整数 输出格式: \a  输出警告声音 \b  输出退格键,也就是BackSpace键 \f  消除屏幕 \n  换行 \r  回撤 \t  水平制表符 \v  垂直制表符   举例: printf ‘%s %s %s\n’ 1 2 3 4 5 6  #表示每三个位一组输出,并加换行符 printf ‘%s\t%s\t%s\t’ $(cat a.txt)  #表示以4列的形式输出

3. awk 命令 awk.‘条件1{动作1}条件2{动作2}…’ 文件名 awk ‘{printf $2 “\t” $6 “\n”}’ a.txt  #输出文件a.txt的第二列和第6列

4. sed 命令 sed [选项] ‘[动作]’ 文件名  #说明:动作必须用引号引起来 选项:

-n  一般sed命令会把所有数据都输出到屏幕。如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。 -e  允许对输入数据应用多条sed命令编辑 -i  用sed的修改结果直接修改读取的数据的文件,而不是修改屏幕输出 动作: a\  追加,在当前行后添加一行或多行。添加多行时除最后一行外,每行末尾需要用"\"代表数据未完结。 c\  行替换,用c后面的字符替换原数据行,替换多行时除最后一行外,每行末尾需要用"\"代表数据未完结。 i\  插入,在当前插入一行或多行,插入多行时,除最后一行外每行末尾需用"\"代表数据未完结。 d  删除,删除指定的行 p  打印,输出指定的行 s  字符串替换,用一个字符串替换另外一个字符串。格式为"行范围 s/旧字符串/新字符串/g" sed可以接收管道符的输出结果   举例:

sed '2p' a.txt  #输出第2行后,又把所有内容输出一遍 sed -n '2p' a.txt  #只输出第二行   sed '2,4d' a.txt  #删除第2到4行,只删除屏幕输出,不会更改文件本身的内容 sed '2a hello' a.txt  #在第二行插入一行 hello sed '2i hello' \   word' a.txt  #在第二行前插入多行 hello 一行 word一行 sed '2c no person' a.txt  #用no person 替换第二行 sed '4s/99/55/g' a.txt  #把第4行的99替换为55 sed -i '4s/99/55/g' a.txt  #把第4行的99替换为55,修改的是原文件而不是屏幕输出 sed -i 's/99/55/g' a.txt  #s前不加行号时表示替换整个文件中匹配的字符串 sed -e 's/Liming//g;s/Gao//g' a.txt  #-e表示允许多个条件执行,把Liming替换为空,把Gao替换为空   5. sort 命令 sort [选项] 文件名  #排序 选项:

-f  忽略大小写 -n  以数值型进行排序,默认使用字符串型排序 -r  反向排序 -t  指定分隔符,默认分隔符是制表符 -k n[,m]  按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)   6. wc命令 wc [选项] 文件名  #统计 选项:

-l  只统计行数 -w  只统计单词数 -m  只统计字符数   7.Linux字符串截取命令 假设有变量 var=http://www.google.com/test.htm 1、 # 号截取,删除左边字符,保留右边字符。 echo ${var#//} 其中 var 是变量名,# 号是运算符,// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.google.com/test.htm

2、 ## 号截取,删除左边字符,保留右边字符。 echo ${var##/} ##/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 http://www.google.com/ 结果是 test.htm

3、 %号截取,删除右边字符,保留左边字符 echo ${var%/} %/ 表示从右边开始,删除第一个 / 号及右边的字符 结果是:http://www.google.com

4、 %% 号截取,删除右边字符,保留左边字符 echo ${var%%/} %%/ 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符 结果是:http:

5、 从左边第几个字符开始,及字符的个数 echo ${var:0:5} 其中的 0 表示左边第一个字符开始,5 表示字符的总个数。 结果是:http:

6、 从左边第几个字符开始,一直到结束。 echo ${var:7} 其中的 7 表示左边第8个字符开始,一直到结束。 结果是 :www.google.com/test.htm

7、 从右边第几个字符开始,及字符的个数 echo ${var:0-7:3} 其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。 结果是:test

8、 从右边第几个字符开始,一直到结束。 echo ${var:0-7} 表示从右边第七个字符开始,一直到结束。 结果是:test.htm 注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)  



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有